An SDN is of a new type of innovative network architecture, whose core technology OpenFlow separates a control plane of a network device from a data plane, thereby implementing flexible control of network traffic, and providing a favorable platform for innovation of a core network and applications.
On the SDN network, each network device retains only a forwarding function, and all control functions are integrated to one controller. The SDN network includes a host, a forwarding device, and a controller. The host is a network endpoint, and an initiator or a terminator of communication; the forwarding device is responsible for sending a data packet, and shares one centralized control plane (that is, the controller on the SDN) with other devices instead of having any independent control plane; the controller is a control center on the SDN and responsible for controlling and managing the forwarding device. When hosts communicate with each other, a communication channel is not obtained by means of negotiation between forwarding devices, but is calculated by the controller and is delivered to each forwarding device.
The controller on the SDN implements control and management using software modules, such as software logic, a northbound interface, a Network Operating System (NOS), and a southbound interface. Herein, control logic is a network application program or service, which interacts with the NOS using the North-Bound Interface (NBI), so that the NOS controls the forwarding device using the South-Bound Interface (SBI), to implement a function, such as data forwarding, that is to be implemented as required by the control logic.
An event generated by the forwarding device needs to be sent to an application program on the NOS for processing. In the prior art, event distribution is implemented based on a subscription/publication mechanism. If the application program needs to process an event, the event must be explicitly registered with the application program. When a new event is generated because a new device is added, code needs to be modified to adapt to the new event, so that the event distribution mechanism is not flexible enough.